package com.medicalsystem.service;

import com.medicalsystem.entity.Patient;
import com.medicalsystem.repository.PatientRepository;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class PatientService {

    private final PatientRepository patientRepository;

    public PatientService(PatientRepository patientRepository) {
        this.patientRepository = patientRepository;
    }

    // 查询所有患者
    public List<Patient> getAllPatients() {
        return patientRepository.findAll();
    }

    // 根据ID查询患者
    public Patient getPatientById(Long id) {
        return patientRepository.findById(id).orElse(null);
    }

    // 新增患者信息
    public Patient savePatient(Patient patient) {
        return patientRepository.save(patient);
    }

    // 修改患者信息
    public Patient updatePatient(Long id, Patient updatedPatient) {
        Optional<Patient> existingPatient = patientRepository.findById(id);
        if (existingPatient.isPresent()) {
            Patient patient = existingPatient.get();
            // 更新信息
            patient.setPatientName(updatedPatient.getPatientName());
            patient.setGender(updatedPatient.getGender());
            patient.setAge(updatedPatient.getAge());
            patient.setIdCard(updatedPatient.getIdCard());
            patient.setPhone(updatedPatient.getPhone());
            patient.setAddress(updatedPatient.getAddress());
            patient.setMedicalHistory(updatedPatient.getMedicalHistory());
            patient.setAllergies(updatedPatient.getAllergies());
            return patientRepository.save(patient); // 保存更新后的数据
        }
        return null; // 如果找不到患者返回 null
    }

    // 删除患者信息
    public void deletePatient(Long id) {
        patientRepository.deleteById(id);
    }
}
